Computer systems may implement open architectures, which may mean the hardware from many hardware manufacturers, and likewise software from many software manufacturers, may be used on the same computer system. For example, it may be common for a computer system user to install an expansion card, such as a network interface card, produced by a first manufacturer onto a computer system motherboard produced by a different manufacturer, and these two devices may function properly together in most situations. Similarly, computer systems may comprise an operating system, such as Windows® by Microsoft Inc., and also use a variety of end-user programs produced by other manufacturers. While in theory hardware and software from different manufacturers should be operational in an open architecture computer system, in practice a computer system may periodically experience situations where the hardware and/or software ceases functioning properly, locks-up or “crashes,” which may be due to conflicts between devices, incursions by software beyond assigned resources, and the like.
Because of the possibility of computer system crashes, some computer manufacturers may implement a passive reset feature known as automatic system reset (ASR). ASR may be a hardware timer implemented within the computer system. If the timer reaches zero, the computer system may be reset (power cycled). In order to avoid the periodic reset of the computer system, a reset software program may periodically execute on the processor of the computer system to reset the timer. Thus, if the computer system is functioning properly, the ASR timer may be periodically reset by the reset software program, thus avoiding a computer system reset. If, however, the hardware or software of the computer system experiences a failure that may keep the reset software program from executing, and presumably operating system and end-user tasks as well, the timer may not be reset and therefore the computer system may reboot.
There may be situations, however, where the reset software program is operational, but other hardware and/or software in the computer have experienced a failure. For example, an expansion bus, such as a PCI bus, may not be functioning properly, and this may in turn keep the computer system from performing its intended task. Operation of the reset software program, however, may not be affected by the PCI bus failure. As a further example, portions of the operating system may not be functioning properly, but again the reset software program may be operational. In these exemplary cases, and others not specifically stated, the ASR may not reset the computer system.